home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / Fast Graph248258172001.psc / mClipG.bas < prev    next >
Encoding:
BASIC Source File  |  2001-06-04  |  2.5 KB  |  65 lines

  1. Attribute VB_Name = "mClipG"
  2. '+--------------------------------------------------------+
  3. '| Name            : mClipG - Graphics Clipboard Functions|
  4. '| Author          : Manuel Augusto Nogueira dos Santos   |
  5. '| Dates           : 03/06/2001                           |
  6. '| Description     : Copy/Paste with images               |
  7. '+--------------------------------------------------------+
  8. Option Explicit
  9. '-------------------------------------------Windows API
  10. Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal HDC As Long) As Long
  11. Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal HDC As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
  12. Private Declare Function SelectObject Lib "gdi32" (ByVal HDC As Long, ByVal hObject As Long) As Long
  13. Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop As Long) As Long
  14. Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
  15. Private Declare Function EmptyClipboard Lib "user32" () As Long
  16. Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
  17. Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
  18. Private Declare Function CloseClipboard Lib "user32" () As Long
  19. Private Const SRCCOPY = &HCC0020
  20.  
  21. Public Enum ClipboardFormats
  22.    [_First] = 1
  23.    CF_TEXT = 1
  24.    CF_BITMAP = 2
  25.    CF_METAFILEPICT = 3
  26.    CF_SYLK = 4
  27.    CF_DIF = 5
  28.    CF_TIFF = 6
  29.    CF_OEMTEXT = 7
  30.    CF_DIB = 8
  31.    CF_PALETTE = 9
  32.    CF_PENDATA = 10
  33.    CF_RIFF = 11
  34.    CF_WAVE = 12
  35.    CF_UNICODETEXT = 13
  36.    CF_ENHMETAFILE = 14
  37.    CF_HDROP = 15
  38.    CF_LOCALE = 16
  39.    CF_MAX = 17
  40.    [_Last] = 17
  41. End Enum
  42.  
  43. Public Sub Image2Clipboard(ByVal mHDC As Long, ByVal SizeX As Long, ByVal SizeY As Long)
  44.   Dim NewHDC  As Long
  45.   Dim ClipBMP As Long
  46.   Dim OldBMP  As Long
  47.   
  48.   'create
  49.   NewHDC = CreateCompatibleDC(mHDC)
  50.   If (NewHDC = 0) Then Exit Sub
  51.   ClipBMP = CreateCompatibleBitmap(mHDC, SizeX, SizeY)
  52.   If (ClipBMP = 0) Then Exit Sub
  53.   OldBMP = SelectObject(NewHDC, ClipBMP)
  54.   'copy to Bitmap
  55.   Call BitBlt(NewHDC, 0, 0, SizeX, SizeY, mHDC, 0, 0, SRCCOPY)
  56.   Call SelectObject(NewHDC, OldBMP)
  57.   'set Clipboard data
  58.   Call EmptyClipboard
  59.   Call OpenClipboard(0&)
  60.   Call SetClipboardData(CF_BITMAP, ClipBMP)
  61.   Call CloseClipboard
  62.   'close
  63.   Call DeleteObject(NewHDC)
  64. End Sub
  65.